from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base
from sqlalchemy import Column,Integer,String,DateTime

# 第一步，准备链接
engine = create_engine('mysql://root:123456@127.0.0.1:3306/learn_mysql?charset=utf8',echo=True)

# 第二步，声明ORM模型的基类
Base = declarative_base()

# 第三步，实现ORM模型类（创建数据库中表对应的类）
class Student(Base):
    # 学生信息表
    __tablename__ = 'student'
    id = Column(Integer,name='stu_id',primary_key=True)
    stu_no = Column(type_ = Integer,nullable=False,comment='学号')
    stu_name = Column(String(16), nullable=False, comment='姓名')
    created_at = Column(DateTime)


# 第四步，同步数据库表
# 1）手动创建数据库(learn_mysql)
# 2）创建表 Base.metadata.create_all() (创建的是当前文件(orm_connect_example.py)中的所有模型类)
# 3）删除表 Base.metadata.drop_all() (删除的是当前文件(orm_connect_example.py)中的所有模型类)
# 操作步骤：在pycharm的python console中（必须是项目目录）
# 输入from orm_connect_example import Base,engine  (orm_connect_example是文件名)
# Base.metadata.create_all(engine)
# 每次修改orm_connect_example文件中的代码后 都要重启一下python console才能执行from orm_connect_example import Base,engine生效

# 也可以导出这个  执行这个函数
def create_table():
    # 同步数据库表
    Base.metadata.create_all(bind=engine)

def drop_table():
    # 删除表
    Base.metadata.drop_all(bind=engine)
